Столбец по умолчанию используется, только если столбец не указан во вставке:
insert into sampletable (othercol) values ('x'); -- ID will default to 1 here
Он не используется, если столбец был указан, даже если в него был передан NULL:
insert into sampletable (othercol, id)
values ('x', null); -- ID will be set to null here
Чтобы справиться с этим, ваш триггер может сделать это:
insert into sampletable (othercol, id)
values ('x', coalesce(:new.id,1));