I figured it out, however I am not sure why this is the case:

Firstly the permissions were in order, and I did not change anything since the full permission to the entire table was granted.

When I added a WHERE clause with tbl.SomeBoolean = ?, it would prompt the -99 SQLCODE error, I then attempted to use tbl.SomeBoolean LIKE (?) which worked, I then tried tbl.SomeBoolean = (?) which ALSO worked.

My conclusion: when filtering by boolean (bit) columns using dynamic queries (%SQL.Statement) parentesis must be surrounded by the value, I don't know why this is and it seems strange to only be needed when dealing with bit columns.