This is the expected behavior. As part of the comparison a method is called on the left side object (for non-primitive types). This fails when the left side value is Null.
There is a special case with explicit Nulls on the right side which changes the way the comparison is made (reference check).