No necesita llamar a PDO::query() . Para una declaración preparada, llame a PDO::prepare() , luego PDOStatement::execute() realiza la consulta y puede recuperar el resultado usando PDOStatement::fetch* .
PDO::query() solo se usa para SQL dinámico; toma como argumento la cadena Declaración de consulta SQL, por ejemplo. SELECT declaración, etc.