BUG: Join behaved like an inner join when only one side had MultiIndex
- [x] closes #34292
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

We can use the regular path now, since ``droplevel`` can handle an ``Index``. Only difference is a resorted result, because ``Index.join()`` does not preserve the order of the leading input

```
left = pd.Index([0, 1, 2, 1], name="b")
right = pd.Index([1, 2, 5], name="b")
print(left.join(right, how="left"))
```

returns 

```
Int64Index([0, 1, 1, 2], dtype='int64', name='b')
```

Edit: We may be able to delete the ``_join_level`` function, if we add a ``level`` keyword to the ``_join_multi`` function to determine the overlap.