Sí, la concatenación devuelve null si alguno de los argumentos es null de acuerdo al manual de MySQL
http://dev.mysql.com/doc/refman/5.0/...unction_concat
Si es tu caso, que alguna de esas columnas es null, es por eso que no ves el resultado, PHP convierte el null de MySQL en una cadena vacía y es muy probable que por eso no veas el resultado.
El IFNULL es para asignar una cadena vacía en caso de el valor de tu campo sea null, por ejemplo
devolvería 'Hola mundo' ya que el primer argumento del IFNULL es null, este valor es reemplazado por 'Hola ' en el ejemplo de mi comentario anterior estoy cambiando los posibles null por cadenas vacías, para que tu resultado siempre sea una cadena, en el peor de los casos que todos tus campos sean null, el resultado que obtendrías sería una cadena vacía.
En el manual vienen más ejemplos, busca IFNULL en esta página
http://dev.mysql.com/doc/refman/5.0/...functions.html
Saludos!