En primer lugar, no necesita las subconsultas, en su lugar puede hacer un recuento de una condición.
El with rollup
el modificador se puede agregar al group by cláusula para incluir el total general. El order by no se puede usar en la misma consulta entonces, pero se puede aplicar en una consulta externa.
Además, con el uso de coalesce puede reemplazar el null valor para esa fila total con la etiqueta de su elección.
Finalmente, para ordenar la fila total al final, puede agregar un is null expresión en el order by cláusula, que se evaluará como false o true . Este último se ordena en último lugar.
select coalesce(checkby, 'Total') as checkby_or_total,
fully,
faulty,
lasthour,
total
from (
select qcheck.checkby,
count(case result when 'fully tested & working' then 1 end) as fully,
count(case result when 'faulty' then 1 end) as faulty,
count(case when finishdate >= now()-interval 1 hour then 1 end) as lasthour,
count(*) as total
from qcheck
where date(finishdate) = CURDATE()
and qcheck.checkby not like 'michael'
and qcheck.checkby not like 'chaz'
group by qcheck.checkby with rollup
) as main
order by checkby is null,
total desc