¿Declaró un delimitador antes de su definición de desencadenante? Algo como
DELIMITER //
CREATE TRIGGER tg_order_insert
BEFORE INSERT
ON `order` FOR EACH ROW
BEGIN
INSERT INTO `grocery`.`order_seqid` VALUE(NULL);
SET NEW.order_id = CONCAT('#GNC', LPAD(LAST_INSERT_ID(),3,'0'));
END
//
Porque si no lo hace, entonces MySQL cree que está tratando de finalizar su definición de disparador cuando ve ese primer ;
y llama error de sintaxis.