Hola JuJoGuAl:
Mucho ojo... por un lado estás declarando las variables así:
Código:
DECLARE num INT(1) DEFAULT 0;
DECLARE franq INT(5) DEFAULT 0;
DECLARE cod CHAR(20) DEFAULT 'NINGUNO';
Sin embargo en la consulta les estás colocando un @
Código:
WHERE `id_franq` = @franq AND `clientes_cod` = @cod;
Estamos hablando de cosas distintas. las variables de usuario (con @) no necesitan ser declaradas, pero si no se inicializan tienen asignado el valor NULL.
http://dev.mysql.com/doc/refman/5.0/es/variables.html
puedes hacer la prueba verificando qué valor tienen asignadas estas variables y te darás cuenta del problema.
Saludo
Leo.