Strange Behavior for trying to Predict Tennis Millionaires with Keras (Validation Accuracy)
I can't find your script hidden in your repo which is your dataset
  which is full of stuff...you should organize your work better if you
  plan to ask on SO.


This would be the reply from a veteran but I am not.

You should use binary_crossentropy as loss, and then I think you would be able to not use to_categorical.

Then the last layer should have activation sigmoid.

More suggestion

Try to use only a neuron in the last layer: Dense(1, activation='sigmoid')

The accuracy problem may be on how you split the data: maybe only samples from one class go into the validation or in training data. I suggest you use train_test_split from sklearn with fixed random_state or something similar.