BUG: fix dtype of all-NaN MultiIndex level
- [x] closes #17929
- [x] tests added / passed
- [x] passes `git diff master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

(This will need to be rebased on #17930 , but in the meanwhile it is useful for discussion)

An alternative, more radical, fix is to have ``pd.CategoricalIndex([np.nan]).dtype.categories`` float (currently object).