N comes before P alphabetically. So that is the default order you will get from the output of Proc Freq.
If the order is that important try:
Proc sort data=have;
by descending test descending standard;
run;
Proc freq data=have order=data;
tables test*standard;
run;
The sort places Pos before Neg and the Proc Freq option order=data tells SAS to display data in the order encountered in the data set instead of the default internal order.
Another approach is to create numeric variables with the value 1= first to display, 2= second to display and so on. Then create a custom format to display the desired text. Use that format in Proc Freq. By default the order would be the internal 1, 2, 3 (etc) but the formatted value will appear.