Non avevo letto tutto. Comunque.
Codice PHP:
select * FROM num as T0
INNER JOIN (
SELECT T1.id, min(T2.n) AS minimo FROM num T1
INNER JOIN (
SELECT id,n1 AS n FROM `num` WHERE n1 <> 0 UNION
SELECT id,n2 AS n FROM `num` WHERE n2 <> 0 UNION
SELECT id,n3 AS n FROM `num` WHERE n3 <> 0 UNION
SELECT id,n4 AS n FROM `num` WHERE n4 <> 0 UNION
SELECT id,n5 AS n FROM `num` WHERE n5 <> 0
) AS T2 on T1.id = T2.id
GROUP BY T1.id
) AS T3 on T0.id = T3.id
HAVING min(T3.minimo)