I'm inclined to suggest that we should require all extensions beyond the boolean-literal case to be set up as a keyword followed by appropriate argument(s); that seems like it's enough to prevent syntax conflicts from future additions. So you could imagine
\if defined varname \if sql boolean expression to send to server \if compare value operator value
I'm still thinking:-)
Independently of the my aethetical complaint against having a pretty unusual keyword prefix syntax, how would you envision a \set assignment variant? Would \if have a different expression syntax somehow?