Here on technet: http://technet.microsoft.com/en-us/library/hh847759.aspx
you can see this:
> -ne
> Description: Not equal to. **Includes a different value**.
and this:
> When the input to an operator is a scalar value, comparison operators
> return a Boolean value. When the input is a collection of values, the
> comparison operators return any matching values. If there are no matches
> in a collection, comparison operators do not return anything.
So, maybe they "sometimes" require something besides NULL/blank/empty to actually return a result/TRUE for that operator?