Solução
Isso deve funcionar, se
$values é uma matriz:$query = "SELECT * FROM table WHERE id IN ($placeholders) AND product=?";
$stm->execute(array_merge($values, array($product)));
Explicação
execute() espera que um parâmetro - neste caso um array - seja fornecido. Adicionando array_merge($values, array($product)) você cria um array com $product adicionado no final, para que a consulta funcione corretamente. Veja a demonstração aqui:https://ideone.com/RcClX