el cuerpo del trigger debería ser así:
Código SQL
[-]
if new.marca_id is null then
new.marca_id = gen_id(marcas_marca_id, 1);
El trigger saltará, pero dado que IBX ha llamado internamente a este trigger, el campo marca_id ya tiene un valor, y el trigger no hace nada.
Saludos