Gracias abidibo!
He probado lo que me dices pero no me funciona, me da el mismo resultado, he supuesto que la query a la que te refieres sería en mi código $query_producto y en vez de $results he utilizado $row_r, para no hacerme lío, me queda así:
Código PHP:
if (!empty($frase)){
$query_producto =
"
SELECT *
FROM productos
WHERE MATCH (nombre_producto, texto_producto)
AGAINST ('$frase' IN BOOLEAN MODE)
AND id_relacion IN (".implode(",",$row_r).")
ORDER BY $orden ASC
";
}
Tienes razón en cuanto a reducir el código, tengo que limpiarlo un poco