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.
> 
> 
> Wow, that's a lot of issues :)
> 
> Just making a small comment ahead of core devs' reviews

Yeah they all had the same underlying issue. The index think and this caused these errors. Hope we can find a solution to merge this :) @jreback 

Do you think it is preferably to do #34468 and this PR together? closing this. @phofl I am pretty sure you actually broke up the fixes into new PRs. if that is not the case, can you address a specific issue here.