I have been learning bash scripting over the past few months. What I have learned is that there are no boolean variables in bash. However, that isn't to say there aren't any boolean values.
If/then looks for 1 or 0. Now.... here's the caveat: 0 is true and everything else is false. For example, when you check to see if a directly exists the result comes back as 0 not 1.
If you get any sort of error code from the function you call, you can trap for that error.
So, try this instead:
if [ $FLAG_Control ] && [ -d /path/to/dir ];then
echo "Run script.."