BUG: pd.concat breaks pickle on non-unique multiindex 
- [x] I have checked that this issue has not already been reported.

- [x] I have confirmed this bug exists on the latest version of pandas.

- [ ] (optional) I have confirmed this bug exists on the master branch of pandas.

---

#### Code Sample, a copy-pastable example

```python


import pickle
import pandas as pd

index = [1, 1, 3, 4, 5] # note the non-unique index!!
data = [1, 2, 3, 4, 5]

df = pd.DataFrame(data=data, index=index)
# prepent an index-column using concat
df = pd.concat([df], 
               keys=["A"], 
               names=["ID", "date"])

dump = pickle.dumps(df)
load = pickle.loads(dump)
```

```python
Traceback (most recent call last):

  File "<ipython-input-71-cb78b67666e1>", line 9, in <module>
    load = pickle.loads(dump)

  File "C:\Users\rquast\Miniconda3\envs\rt1\lib\site-packages\pandas\core\indexes\base.py", line 242, in _new_Index
    return cls.__new__(cls, **d)

  File "C:\Users\rquast\Miniconda3\envs\rt1\lib\site-packages\pandas\core\indexes\multi.py", line 339, in __new__
    new_codes = result._verify_integrity()

  File "C:\Users\rquast\Miniconda3\envs\rt1\lib\site-packages\pandas\core\indexes\multi.py", line 413, in _verify_integrity
    f"Level values must be unique: {list(level)} on level {i}"

ValueError: Level values must be unique: [1, 1, 3, 4, 5] on level 1
```

... doing the very same thing manually works just fine
```python
multiindex = pd.MultiIndex.from_product([["A"], index], names=["ID", "date"])

df2 = pd.DataFrame(data=data, 
                   index=multiindex,
                   )

dump = pickle.dumps(df2)
load = pickle.loads(dump)

load.equals(df)
>>> True
```


#### Problem description

I guess there's not much problem-description needed...
I stumbled upon this really puzzling issue while working on a multiprocessing-routine that puts pandas-dataframes in a queue...
... it took a while until i realized where the actual problem was coming from... I still don't get what's happening here though...

just to show what I mean... this is where the error originally occured:
```python
import multiprocessing as mp
manager = mp.Manager()
queue = manager.Queue()
queue.put(df)
```


#### Expected Output

I'd like pd.concat to output a nicely pickleable DataFrame

#### Output of ``pd.show_versions()``

<details>

INSTALLED VERSIONS
------------------
commit           : f00ed8f47020034e752baf0250483053340971b0
python           : 3.7.10.final.0
python-bits      : 64
OS               : Windows
OS-release       : 10
Version          : 10.0.17763
machine          : AMD64
processor        : AMD64 Family 25 Model 33 Stepping 0, AuthenticAMD
byteorder        : little
LC_ALL           : None
LANG             : en
LOCALE           : None.None

pandas           : 1.3.0
numpy            : 1.21.1
pytz             : 2021.1
dateutil         : 2.8.2
pip              : 21.1.3
setuptools       : 49.6.0.post20210108
Cython           : None
pytest           : 6.2.4
hypothesis       : None
sphinx           : 4.1.1
blosc            : None
feather          : None
xlsxwriter       : None
lxml.etree       : None
html5lib         : None
pymysql          : None
psycopg2         : None
jinja2           : 2.11.3
IPython          : 7.25.0
pandas_datareader: None
bs4              : None
bottleneck       : None
fsspec           : 2021.07.0
fastparquet      : None
gcsfs            : None
matplotlib       : 3.4.2
numexpr          : 2.7.3
odfpy            : None
openpyxl         : None
pandas_gbq       : None
pyarrow          : None
pyxlsb           : None
s3fs             : None
scipy            : 1.7.0
sqlalchemy       : None
tables           : 3.6.1
tabulate         : None
xarray           : 0.18.2
xlrd             : None
xlwt             : None
numba            : None

</details>
