Как уже упоминалось, столбец адреса пуст, затем попробуйте использовать выражение IS EMPTY вместо IS NULL .
em.createQuery( "SELECT o FROM Person o where (o.address.id IS NULL OR o.address.id = 0").setMaxResults(50).getResultList();
Проверить ограничение в соответствии с типом данных id.
Также нет необходимости упоминать setFirstResult (0) , поскольку он не пропускает никаких результатов и без него, по умолчанию будут выбраны все совпадающие результаты.