@catch reminded me of this in #1164852-65: Inconsistencies in field language handling, and it turned out that core uses the wrong operator all over the place.
Attached patch is a quick fix. Note that I only grepped for
'!='. I don't think there are any instances of
"!=", but there may very well be instances of
!= in plain db_query*() SQL strings.
For D8+ (separate issue), we should remove support for '!=' from EFQ and also throw an exception in DatabaseCondition::condition() in case $operator == '!=' is passed. (No magic conversion -- otherwise, people won't understand this ever.)