Prueba esto:
if($img != NULL) {
return '<img src="' . $img . '" alt="' . $alt .'" />';
}
Explicación:
Si comparas !$img contra NULL básicamente haces una inversión booleana en $img y luego ver si eso se compara con NULL, que no es lo que quieres.
Además, tenga en cuenta que debe usar
if($img !== NULL)
en cambio. != comparará los valores de las variables proporcionadas, mientras que !== comparará los valores Y el tipo de datos (que en caso de NULL podría ser de su mejor interés).