Categorical cross-entropy works wrong with one-hot encoded features
For it to work -

Change output neurons count to 02
Activation of output to Softmax
Keep all the vectors of OHE output

This is how Keras is designed internally. Same has been written on the official documentation page

BinaryCrossentropy class
Use this cross-entropy loss when there are only two label classes (assumed to be 0 and 1). For each example, there should be a single floating-point value per prediction.
In the snippet below, each of the four examples has only a single floating-pointing value, and both y_pred and y_true have the shape [batch_size]


CategoricalCrossentropy class
The shape of both y_pred and y_true are [batch_size, num_classes]

And we know that to keep the Classification multi-class you need to make all the num_class output relative to each other, so we use softmax
Ref
Keras official page
Similar SE thread
Similar SE thread