OK, el problema entonces es CON LOS DATOS, no con las consultas. Es difícil darte una solucion práctica sin conocer los datos reales de las tablas y qué cardinalidad tienen.
Vamos a suponer que Productos, contiene productos DIFERENTES.
¿ok?
¿Cuantas marcas puede haber por cada producto? (minimo y máximo)
¿Cuantos modelos puede haber por producto?
Código MySQL:
Ver original p.idProducto,
p.n_producto,
p.descripcion,
m.n_marca,
c.n_categoria
INNER JOIN categorias c
ON c.id_categoria
=p.idcategoria
OR c.n_categoria
LIKE '%".$search."%' OR m.n_marca
LIKE '%".$search."%' INNER JOIN productos_modelo pm
ON m.idmodelo
=pm.idmodelo
WHERE pm.idproducto
= p.idproducto
AND n_modelo
LIKE '%".$search."%')