Lösning
Detta bör fungera, om $values är en array:
$query = "SELECT * FROM table WHERE id IN ($placeholders) AND product=?";
$stm->execute(array_merge($values, array($product)));
Förklaring
execute() förväntar sig att en parameter - i detta fall en array - tillhandahålls. Genom att lägga till array_merge($values, array($product)) du skapar en array med $product läggs till i slutet, så frågan bör fungera korrekt.
Se demon här:https://ideone.com/RcClX