Tente isto:
if($img != NULL) {
return '<img src="' . $img . '" alt="' . $alt .'" />';
}
Explicação:
Se você comparar
!$img
contra NULL
você basicamente faz uma reversão booleana em $img
e depois ver se isso se compara a NULL - que não é o que você deseja. Além disso, observe que você deve usar
if($img !== NULL)
em vez de.
!=
irá comparar os valores das variáveis fornecidas, enquanto !==
irá comparar os valores E o tipo de dados (que no caso de NULL pode ser de seu interesse).