Prova questo:
if($img != NULL) {
return '<img src="' . $img . '" alt="' . $alt .'" />';
}
Spiegazione:
Se confronti !$img contro NULL fondamentalmente fai un'inversione booleana su $img e poi vedere se è paragonabile a NULL, che non è quello che vuoi.
Inoltre, tieni presente che dovresti usare
if($img !== NULL)
invece. != confronterà i valori delle variabili fornite, mentre !== confronterà i valori E il tipo di dati (che in caso di NULL potrebbe essere il tuo migliore interesse).