Decision trees, categorizacion and oversampling
Do you use Python?
Python class DecisionTreeClassifier has an attribute class_weight for this purpose.
So you do not need to adjust it manually. Check here
https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html
Regarding discretizing or encoding - hard to say what is better without knowing your data.
Unless you are really sure one is the best choice, you can check the model by using encoding instead of discretizing and compare the quality.