I have a feeling you're doing something completely wrong here.
Gender = Blue IMP Male AND Gender$ = "Male"
Gender = Pink IMP Female AND Gender$ = "Female"
AND, in both these instances are binary operators. When evaluating the results, what you'd have is basically:
Gender = Blue IMP (Male AND (Gender$ = "Male")) -- IMP seems to evaluate last in this order of operations. Personally, I find this odd, as I expected it to evaluate at the same precedence level as AND does. I would've solved this problem as Gender = (Blue IMP Male) AND (Gender$ = "Male"), which would give completely different results. Does anyone with more experience with these commands know which is the proper sequence? Is QB64 bugged here, or is my thinking just off, and it's something which might need expanding upon in the wiki a little more?
Since Gender$ = "", when we evaluate Gender$ = "Male", we get a value of 0, which gives us:
Gender = Blue IMP (Male AND 0)
Now, since Male is 0, we can evaluate 0 AND 0, which gives us a value of 0. We now have:
Gender = Blue IMP 0. Since Blue is 0, we're basically doing a 0 IMP 0 calculation, which gives us a value of -1.
Gender = -1
And the same process occurs with the second statement, since all the values we substitute into the formula stays the same.
IMP is a math operation, much like addition. It simply compares two binary values and then returns a result based on that comparison. It's definitely not used the way you're attempting to use it.