Você não deve chamar
executeQuery(String) em um PreparedStatement , você deve chamar executeQuery() em vez de. Isso não é permitido explicitamente pela API JDBC, mas só dá errado por acidente (devido ao erro de sintaxe) com o MySQL Connector/J. Observe que sua consulta atual é equivalente a:
select * from matrix where metric_name = ?
Não vejo um motivo para você usar
IN aqui.