Bone driver on X location not working
Display the bone axis.

Driver limited from 0 to 2 moving in Z local direction of bone.
Locally for bones the Y axis goes down the axis of the bone. If you enable the display in armature display properties can turn this on.
The copy location constraint is a bit arbitrary between pose (wrt armature origin) and global.
For the limit location constraint going to use local. The zero of a local transform is its rest position.  Ok can set the minimum to 0.  Looking at bone axis then +Z is forward, have limited it to 2.  An arbitrary choice for this answer and to test against, change to suit.

To change the result to go from 0 to 4 with a generator

which is the equivalent of having a scripted expression for the driver of
0 + 2 * var

which if you remember basic algebra is a linear equation.  As mentioned by @Nathan in other answer, this was and issue because it was set to be result zero, no matter what the value of var was.
1000 seems to me to be an outrageously big result, but for this example would use 500 instead of 2.
See driver results.
Find it handy to use the script from  this answer when fiddling with drivers
https://blender.stackexchange.com/a/199299/15543
can test the value of a number of variables by looking at output in console, rather than via the driver editor UI.