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.
The change caused a few other tests to fail, which I have not run locally. All because the new result has a differently sorted index. Is this ok or do we have to figure a way out to get the old behavior? This pull request is stale because it has been open for thirty days with no activity. Please update or respond to this comment if you're still interested in working on this. @phofl status here? > @phofl status here?

 @phofl closing as stale. reopen when ready.