Prueba la consulta usando JOIN y sin el DISTINCT.
El UNION ya te devuelve la union de las dos consultas sin repetir los resultados duplicados.
El JOIN quizás te haga la consulta más rápida (eficiente, menos lecturas, etc.)
Código SQL
[-]
SELECT T1.CODIGO, T1.MARCA, T1.MODELO
FROM TABLA1 T1
JOIN TABLA2 T2
ON (T1.CODIGO=T2.CODARTICULO)
WHERE (T1.CAMPO4<>'T')AND(T1.CAMPO5<>'T')AND((T2.CAMPO2<>'T')OR(T2.CAMPO2 IS NULL))
UNION
SELECT T1.CODIGO, T1.MARCA, T1.MODELO
FROM TABLA1 T1
JOIN TABLA3 T3
ON (T1.CODIGO=T3.CODARTICULO)
WHERE (T1.CAMPO4<>'T')AND(T1.CAMPO5<>'T')