Una solución similar a la de Patrick Hofman es mover la lógica en el HAVING
cláusula
SELECT truck
FROM table
GROUP BY truck
HAVING COUNT(DISTINCT location) = 2
AND SUM(CASE WHEN location IN (1, 2) THEN 0 ELSE 1 END) = 0
La primera condición devuelve el camión con solo dos ubicaciones distintas, sin verificar sus valores, la segunda condición obliga a que esas ubicaciones sean 1 y 2