To accomplish this, I think you'll need two programs.
The first program looks like this:
If iPhone is 1
Then run Program 2
Program 2
If Sensor is ON
Then Open Garage door
The trick is to disable Program 2 from running. This prevents the ISY from auto-evaluating the program based just on the sensor status and instead will run the IF statement ONLY when Program 1 runs because of your geo-fence variable changing from a 0 to a 1.
Wes