Решение
Това трябва да работи, ако $values е масив:
$query = "SELECT * FROM table WHERE id IN ($placeholders) AND product=?";
$stm->execute(array_merge($values, array($product)));
Обяснение
execute() очаква да бъде предоставен един параметър - в този случай масив. Чрез добавяне на array_merge($values, array($product)) създавате един масив с $product добавен в края, така че заявката трябва да работи правилно.
Вижте демонстрацията тук:https://ideone.com/RcClX