Negative values in XGBoost regression
Gradient boosting machines can return values outside of the training range. Have a look at this post Can Boosted Trees predict below the minimum value of the training label?
In practice this is unlikely to happen, but it can be the case for your data.
If this is happening probably what it means is that your training data and the one you are evaluating are different.