In SQL heeft dit type query een zogenaamde EXCEPTION JOIN
nodig . Sommige RDBMS'en implementeren dit eigenlijk als een apart type (zoals DB2), terwijl andere een tijdelijke oplossing moeten gebruiken. In jouw geval komt het neer op (in SQL):
SELECT User.*
FROM User
LEFT JOIN UserHouse
ON UserHouse.id_user = User.id
WHERE UserHouse.id_user IS NULL
Welke zal opleveren de verwachte 'not in a house'-records.
Op een aantal plaatsen op deze site staan soortgelijke voorbeelden.
Ik heb Doctrine nog nooit gebruikt, dus daar kan ik je niet mee helpen. Maar mijn beste gok zou zoiets zijn als:
addWhere('uh IS NULL')
of
addWhere('uh.id_user IS NULL')