The normal theory method (METHOD=NORMAL, the default) assumes multivariate normality. Using categorical variables violates this assumption rather strongly. Logistic modeling is a better and simpler approach. You can use PROC LOGISTIC to develop a model for classifying observations into two or more groups (use the LINK=GLOGIT option). If data sparseness causes problems with fitting the model, or if discriminant analysis is required, try the nonparametric methods available in PROC DISCRIM with the METHOD=NPAR option. Then use either the K= option for the k-nearest neighbor method or the R= option for the kernel density method.
Another possible approach is to use a classification tree model, available in PROC HPSPLIT.