Puede crear una unión y usar un alias en la consulta para definir la asignación de diferentes campos para el mismo nombre, si no hay ningún campo en una tabla, simplemente convierta el alias para un campo vacío:
SELECT (staff.name) as name FROM users
left JOIN staff USING (user_id)
UNION
SELECT (customers.first_name) as name FROM users
left JOIN customers USING (user_id);
Si el ID de usuario es un PK/FK, solo lo devolverá una tabla.