This is very similar to the problem I'm having. Predict.gam is producing mostly negative values, despite my response being strictly positive (wildfire size). However, setting type = "response" didn't solve the issue.