Puoi sfruttare il fatto che la maggior parte delle funzioni aggregate ignora null
:
select
id,
company,
city,
province,
max(manager_email) manager_email,
max(staff_email) staff_email
from mytable
group by id, company, city, province