У нас в одном проекте есть самописная библиотека для работы с бд. В ней функции типа findOne никогда не возвращают null. Если запись не найдена, они тоже возвращают экземпляр entity. При этом у него есть метод exists, который вернет false, если запись не была найдена. Пример:
$entity = $repository->findOne(123);
if ($entity->exists()) {
//нашли
} else {
//не нашли
}