When using SqlMapper.Parse to map a data reader, the logic is not the same as when Dapper is managing the reader itself.
In particular the logic in QueryImpl uses Convert.ChangeType to convert types as required.
When using SqlMapper.Parse, the Parse implementation does not apply the same conversion logic.
So SELECT 1 will be cast to bool using Query<bool> but will fail with invalid cast error using SqlMapper.Parse<bool>