Du bör inte anropa executeQuery(String) på en PreparedStatement , bör du anropa executeQuery() istället. Detta är uttryckligen inte tillåtet av JDBC-api, men blir bara fel av misstag (på grund av syntaxfelet) med MySQL Connector/J.
Observera att din aktuella fråga motsvarar:
select * from matrix where metric_name = ?
Jag ser ingen anledning till att du skulle använda IN här.