BUG: Fix value setting in case of merging via index on one side and column on other side.
- [x] xref #15692
- [x] xref #17257 
- [x] xref #28220
- [x] xref #28243
- [x] xref #33232
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

Until now the `_maybe_add_join_keys` function changed the target column in the result, if the join was done over index on one side and the column on the other side. This resulted in taking values from the index and setting them for the target column, which explained the weird behavior in the issues referenced. Together with #34468 this will fix the issues. Both combined will transfer the merged index in these cases and the merged columns with the correct name. As of now this fix will only transfer the values, so the index will be wrong here.

We can not skip the method completly, because this would cause issues in case of the column is in both `DataFrames` we have to run through this steps to ensure that the target values are right. So I check if this is only contained in one side.