Вы должны отделить логику принятия решения от вывода, чтобы ее было легче отлаживать:
$isEmployeeIn = isEmployeeIn($row_io);
printf('<img src="../images/%s.png>', $isEmployeeIn ? 'in' : 'out');
Затем вы помещаете все необходимое для логики в isEmployeeIn
, а разделенный вывод обеспечивает отображение только одного изображения за один раз.
Кстати:
$row_io['am_in'] == !NULL || $row_io['pm_in'] == !NULL
Эквивалентно:
$row_io['am_in'] || $row_io['pm_in']
Постарайтесь свести код к минимуму, чтобы не допустить такого количества ошибок.