Supongo que usas Laravel por la sintaxis que pusiste, la consulta de @quimfv pasada a Laravel seria algo asi:
Código PHP:
Ver originalDB::table('trabajos')
->join('tecnicos', 'trabajos.responsable_diagnostico', '=', 'tecnicos.id') ->where('trabajos.created_at', '>=', $desde4, 'and', 'trabajos.created_at', '<=', $hasta4)
->select(DB::raw('tecnicos.nombre tecnico,
SUM(if(TIMEDIFF(STR_TO_DATE(CONCAT(trabajos.fecha_egreso, ' ', trabajos.hora_egreso), '%Y-%m-%d %H:%i:%s'),
STR_TO_DATE(CONCAT(trabajos.fecha_ingreso, ' ', trabajos.hora_ingreso), '%Y-%m-%d %H:%i:%s'))<'00:30:00',1,0)) bien,
SUM(if(TIMEDIFF(STR_TO_DATE(CONCAT(trabajos.fecha_egreso, ' ', trabajos.hora_egreso), '%Y-%m-%d %H:%i:%s'),
STR_TO_DATE(CONCAT(trabajos.fecha_ingreso, ' ', trabajos.hora_ingreso), '%Y-%m-%d %H:%i:%s'))<'00:30:00',0,1)) mal'))
->groupBy('tecnicos.nombre')
->get();
No lo he probado, pero esa es la idea.