NULL vs NOT NULL -- Usa NOT NULL a menos que tenga un motivo comercial para NULL .
Use InnoDB con PRIMARY KEY relevante en cada mesa. Eso probablemente será más rápido.
"Usar el índice", donde tenga sentido, ayudará un poco.
product.categoryid = 4871 no pertenece al ON cláusula para vendorimport; moverlo a un WHERE cláusula. (Esto no acelerará las cosas).
Su consulta no puede optimizarse más; debe haz todos los JOIN y entrega todas las filas.
Pero... ¿Realmente quieres 3917 filas de salida? ¿Puedes lidiar con eso? ¿Quizás solo desea algunos de ellos y podría filtrarlos durante la SELECCIÓN? Eso podría acelerar las cosas.