Ich habe etwas Ähnliches getan, indem ich durch Kommas getrennte Listen von IDs behandelt habe, um Bitmasken zu emulieren. Der Trick besteht darin, einen Join mit '%,id,%' durchzuführen (wobei id der Schlüssel in einer Tabelle ist, die durch id indiziert ist). Für Ihren Fall verbinde ich table_1 mit einer Tabelle aus aufeinanderfolgenden Ganzzahlen und das Ergebnis enthält eine Zeile für jede ID in Ihrer Spalte product_id.
Ich tue dies einmal für jede ID, die Sie anfordern, und verbinde die resultierenden abgeleiteten Tabellen, um die gemeinsamen zu finden.
Hier ist die Abfrage:
SELECT p1.id, p1.name name1,p2.name name2, GROUP_CONCAT(p1.N) similarities
FROM (
SELECT *
FROM table_1 t1
JOIN sequence8 s8 on CONCAT(',',t1.product_ids,',') LIKE CONCAT('%,',s8.N,',%')
WHERE t1.id =1
) p1
JOIN
(
SELECT *
FROM table_1 t1
JOIN sequence8 s8 ON CONCAT(',',t1.product_ids,',') LIKE CONCAT('%,',s8.N,',%')
WHERE t1.id =4
) p2 ON p2.n = p1.n
GROUP BY p1.id