Desafortunadamente, MySQL no es muy bueno para optimizar subconsultas con IN. Esto es de documentación de MySQL :
Intenta usar un JOIN en su lugar.
Debido a que MySQL funciona de adentro hacia afuera, a veces puede engañar a MySQL envolviendo la subconsulta dentro de otra subconsulta de esta manera:
SELECT COUNT(*) FROM table_name WHERE device_id IN
(SELECT * FROM (SELECT DISTINCT device_id FROM table_name WHERE NAME = 'SOME_PARA') tmp)
Aquí está la solución JOIN:
SELECT COUNT(DISTINCT t2.id) FROM table_name t1
JOIN table_name t2
ON t2.device_id = t1.device_id
WHERE t1.NAME = 'SOME_PARA'
Fíjate que empiezo desde adentro y salgo también.