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).