Hola:
Me parece que el chequeo del tipo del campo id después de la consulta tiene muy poco sentido... con averiguar si se han encontrado registros debería ser suficiente... incluso, si quisieras optimizar el código, averiguar el tipo antes de la consulta sql... aunque son consultas bastante rápidas (como para despreocuparse)
Saludos