Claro que es posible.
Seguramente ocurre que se manda un mensaje de advertencia (Warning) o uno de error a la salida para el navegador, al acceder a la base de datos o al ejecutar una consulta, y entonces al llegar a la ejecución de:
Código PHP:
header("Content-type: image/gif");
imagegif($im);
imagedestroy($im);
a PHP no le es posible crear ya la imagen, debido a que antes de declarar el encabezado (o cabecera) de la imagen, ya hay texto escrito, es decir el mensaje de advertencia o error que manda al acceder a tu base de datos.
Prueba comentando esta misma parte :
Código PHP:
/*header("Content-type: image/gif");
imagegif($im);
imagedestroy($im);*/
para que así en el navegador puedas ver cual es el error que está ocurriendo al acceder a tu base de datos que genera ese mensaje.
Saludos.