BUG: Fix bug in combine_first with string dtype and only NA
- [x] closes #37519
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

This caused bugs in ``Index.union()`` and ``Index.join()``  with ``how=outer`` too, but they are called from combine_first. Could add test, if this would be preferable. Hope Adding ExtensionArray to the if condition does not crash anything else. Run most categorical tests already locally.
this is fine, thanks. likely we would want some more direct testing of categoricals here (e.g. pass a dtype='string' EA array in (or actually *any* EA array) and it should hit this path). if you can followon with some additional tests