Set correct missing value indicator in astype for categorical
- [x] tests added / passed
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit) for how to run them


The failure comes from:

``np.nan`` as float is considered as valid na type for str dtype. I think this should return False instead of True? Question is if we want to support np.str in the first place... also this should add onto another whatsnew note? or this is separate? This is a follow up of #44930 and goes with the whatsnews there nice!