Ed,

>Can someone tell me why this fails? I'm using v4.1.11
>Select IF(((Select 1+1) <> Null) and ((Select 1+1) <> 0), (Select 1+1), 'WRONG')
>I would expect a result of 2.

NULL is neither equal nor unequal to anything including itself.

To get the result you expect, write

Select IF(((Select 1+1) IS NOT Null) and ((Select 1+1) <> 0), (Select 1+1), 'WRONG');

PB