Por lo pronto, el OR que pusiste opera como una disyunción y hace que con sólo que sea TRUE esa condición y la siguiente, devuelva un resultado inesperado.
Tomate el trabajo de escribir estructuradamente la consulta para que puedas ver correctamente los bloques que se aevalúan. Cuando la pones de corrido es muy fácil meter la pata y no ver los errores de lógica.
También repasa algo de lógica proposicional y los operadores lógicos AND y OR para tener claro cómo se evalúan y construyen.
Pruebalo así (mira cómo la escribí para que trates de hacer algo como eso, te ayudará):
Código MySQL:
Ver original T10.cantidad,
T10.idnodo,
l1.idproducto,
l1.precio,
l1.posicion,
l1.manual,
l1.idpliego
INNER JOIN tablabase10 t10
ON l1.idproducto
= T10.idproducto
l1.idpliego = 94
and (T10.idpliego
= 94 and T10.idnodo
= 61) l2.idproducto = l1.idproducto
and l2.idpliego
= l1.idpliego
)