Entiendo que fin y inicio son DATETIME o TIME en la bbdd, primero los pasas a segundo restas y luego el resultado lo pasas otra vez a TIME, y en este formato lo recibe php pero cuando php recibe es un texto formateado asi 'HH:MM:SS'.
En php una fecha con su hora es un objeto debes usar las funciones que te indique para pasar el dato texto al objeto fecha de php y luego operar entre fechas/horas...
http://php.net/manual/es/function.strtotime.php
O más facil,
quizas?, usa
SELECT SUM(TIME_TO_SEC(fin) - TIME_TO_SEC(inicio)) AS timediff
sin convertirlo a time (quitando SEC_TO_TIME) y tendras un numero de segundos con los que podràs operar como un numero normal una vez tengas el resultado lo tendrás en segundos luego pasalo a hh:MM:SS ... (dividiendo por 60 las veces que haga falta)