Oplossing
Dit zou moeten werken als $values is een array:
$query = "SELECT * FROM table WHERE id IN ($placeholders) AND product=?";
$stm->execute(array_merge($values, array($product)));
Uitleg
execute() verwacht dat één parameter - in dit geval een array - wordt verstrekt. Door array_merge($values, array($product)) . toe te voegen je maakt één array met $product toegevoegd aan het einde, dus de zoekopdracht zou correct moeten werken.
Bekijk hier de demo:https://ideone.com/RcClX