Para cada linha, encontre uma primeira linha com LogDate maior (posterior). Se a velocidade nesta linha for menor que 10, conte a diferença de data entre a data desta linha e a data da próxima linha, senão coloque 0.
Uma consulta que forneceria uma lista dos valores contados dessa maneira deve ter a seguinte aparência:
SELECT ( SELECT IF( c1.speed <10, unix_timestamp( c2.LogDate ) - unix_timestamp( c1.logdate ) , 0 )
FROM car_log c2
WHERE c2.LogDate > c1.LogDate
LIMIT 1
) AS seconds_below_10
FROM car_log c1
Agora é só resumir:
SELECT sum( seconds_below_10) FROM
( SELECT ( SELECT IF( c1.speed <10, unix_timestamp( c2.LogDate ) - unix_timestamp( c1.logdate ) , 0 )
FROM car_log c2
WHERE c2.LogDate > c1.LogDate
LIMIT 1
) AS seconds_below_10
FROM car_log c1 ) seconds_between_logs
Atualização após comentário sobre como adicionar CarId:
Quando você tem mais de 1 carro, você precisa adicionar mais uma condição WHERE dentro da subconsulta dependente (queremos o próximo log para esse carro exato, não apenas qualquer próximo log) e agrupar todo o conjunto de linhas por CarId, possivelmente adicionando o CarId ao select para mostrar isso também.
SELECT sbl.carId, sum( sbl.seconds_below_10 ) as `seconds_with_speed_less_than_10` FROM
( SELECT c1.carId,
( SELECT IF( c1.speed <10, unix_timestamp( c2.LogDate ) - unix_timestamp( c1.logdate ) , 0 )
FROM car_log c2
WHERE c2.LogDate > c1.LogDate AND c2.carId = c1.carId
LIMIT 1 ) AS seconds_below_10
FROM car_log c1 ) sbl
GROUP BY sbl.carId
Veja um exemplo em Sqlfiddle .