What is difference between leave one subject out and leave one out cross validation
Leave one out subject makes it sure that you don't have subject bias.

The fact that you have the same subject in your training and your testing datasets will make the model know more about your subject than it should. With a brand new subject, the model will probably perform poorly because it never trained on the subject before.

There is no such tool available in sklearn, as it's very easy to build your own if the subject id is a column in your dataset.