Наверно в цикле запускаете этот код? список каких то моделей? С вашей проверкой вы проверяете только первый объект, а остальные ниже нет. Чтоб поймать кота:
if (!$work->category) {
print_r($work);
}
Обычно проверяю свойство перед:
if ($work->category && $work->category->type == Category::TYPE_URGENT_WORK) {
// ...
}