Is the code you posted your actual code? I can’t help but think you are trying to pass an array of values to the IN clause via $parameters. Which is simply not going to work out of the box as prepared statements (sadly) do not support array values.
And yet, when I was trying that code on my local server to try to see what might be wrong, I first created $parameters as a blank string and got the error that it must be an array. I don’t normally use PDO in this way, I prefer to use bindParam(), so I am by no means sure, but I thought it was acceptable to use an indexed array to pass the parameters into a PDO prepared statement?
public bool PDOStatement::execute ([ array $input_parameters ] )
In any case, as the query has no parameters it probably won’t matter. The code above seemed to work OK for me.