BUG-24212 fix when other_index has incompatible dtype
- [X] closes #25001
- [X] tests added / passed
- [X] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

Followup to #24916, addresses the case when the other index has an incompatible dtype, so we cannot take directly from it. Currently, this PR ~naively replaces the missing index values with the number of the rows in the other index that caused them~ replaces the missing index values with the appropriate NA value.

~Still working on adding cases when it is possible to combine indices of sparse/categorical dtypes without densifying.~