How does KNN handle categorical features
It doesn't handle categorical features. This is a fundamental weakness of kNN.  kNN doesn't work great in general when features are on different scales. This is especially true when one of the 'scales' is a category label.  You have to decide how to convert categorical features to a numeric scale, and somehow assign inter-category distances in a way that makes sense with other features (like, age-age distances...but what is an age-category distance?).  

If all features are categorical, and inter-category distances are all treated as somehow equal, your job actually gets a little easier since you aren't converting between categorical and scalar scales.