NULL - указатель, эквивалентный 0. 0 ложно в C, а любое другое ненулевое значение положительно.
Следовательно, если! (Не оператор) применяется к NULL (false), это означает, что! NULL имеет значение true.
Таким образом, условие if удовлетворяется как истинное и единичное. печатается.