BUG-24212 fix usage of Index.take in pd.merge
- [X] closes #24212
- [X] tests added / passed
- [X] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [X] whatsnew entry

The use of `Index.take` in `pd.merge` to create `join_index` causes an indexer with -1 values to take the last value in the index being taken from. This PR allows it to correctly handle absent values.