PostgreSQL trigger doesn't insert all records
The select from employee table won't work as it is a before trigger and thus the new rows are not yet in the employees table. 

You can use the new record directly.

create or replace function insert_empMerge() 
  returns trigger as $$
begin
  INSERT INTO empMerge(empID, full_name) 
  SELECT new.empID, new.full_name
  WHERE NOT EXISTS (SELECT 1
                    FROM empMerge
                    WHERE new.empID = empMerge.empID 
                     and  new.full_name = empMerge.full_name);
  return new;
end;
$$ language plpgsql;


You could make that a bit shorter (and faster) if you declare a unique constraint on empmerge(empid, full_name) and then use insert on conflict:

alter table empmerge
   add constraint unique_employee
   unique (empid, full_name);


Then change the trigger function:

create or replace function insert_empMerge() 
  returns trigger as $$
begin
  INSERT INTO empMerge(empID, full_name) 
  values (new.empID, new.full_name)
  on conflict on constraint unique_employee do nothing;
  return new;
end;
$$ language plpgsql;




Another option would be to make the existing trigger an AFTER trigger. In that case the new row is already inserted into the employee table and it would be visible for the trigger.