BUG: Different behavior when set a list(scalar) to entire column and to some (filtered) rows
- [*] I have checked that this issue has not already been reported.

- [*] 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.

---

#### Problem description

Different behavior when set a list(scalar) to entire column and to some (filtered) rows.

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

```python
df1 = pd.DataFrame({"X1":[[1],[2],[3]], "X2":[1,2,3]})

# work fine
df1["Y1_1"] = df1["X1"].to_numpy()
df1.loc[:1,"Y1_2"] = df1.loc[:1, "X1"].to_numpy()

# try simple new asix, which not work
df1["Y2_1"] = df1["X2"].to_numpy()[..., np.newaxis]

# set entire column by set a python list of arrays as espected
df1["Y2_2 (works as expected: list)"] = list(df1["X2"].to_numpy()[..., np.newaxis])
df1["Y2_2 (works as expected: 1 nested list)"] = list(df1["X2"].to_numpy()[..., np.newaxis][..., np.newaxis])

# now try to set with same function to subset of rows
df1["Y2_3 (not works as expected: scalar value instead list)"] = ""
df1.loc[:1, "Y2_3 (not works as expected: scalar value instead list)"] = list(df1.loc[:1, "X2"].to_numpy()[..., np.newaxis])

df1["Y2_4 (works as expected: 1 nested list)"] = ""
df1.loc[:1, "Y2_4 (works as expected: 1 nested list)"] = list(df1.loc[:1, "X2"].to_numpy()[..., np.newaxis][..., np.newaxis])

df1["Y2_5 (works as expected: 2 nested lists)"] = ""
df1.loc[:1, "Y2_5 (works as expected: 2 nested lists)"] = list(df1.loc[:1, "X2"].to_numpy()[..., np.newaxis][..., np.newaxis][..., np.newaxis])
# so Y2_3 is wrong as we can't set simple list and 

# now I can set through ugly way:
# create list of array and one of values set to normal and after that set it individualy:
df1["Y2_3_2 (as expected)"] = ""
tmp = list(df1.loc[:1, "X2"].to_numpy()[..., np.newaxis])
tmp[0] = tmp[0][0]
df1.loc[:1, "Y2_3_2 (as expected)"] = tmp
df1.loc[0, "Y2_3_2 (as expected)"] = [[df1.loc[0, "Y2_3_2 (as expected)"]]]
```

#### Expected Output
```python
df1[["Y2_3 (not works as expected: scalar value instead list)", "Y2_3_2 (as expected)"]]
```
|   	| Y2_3 (not works as expected: scalar value instead list) 	| Y2_3_2 (as expected) 	|
|---	|---------------------------------------------------------	|----------------------	|
| 0 	| 1                                                       	| [1]                  	|
| 1 	| 2                                                       	| [2]                  	|
| 2 	|                                                         	|                      	|

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

<details>

INSTALLED VERSIONS
------------------
commit           : None
python           : 3.8.2.final.0
python-bits      : 64
OS               : Windows
OS-release       : 10
machine          : AMD64
processor        : Intel64 Family 6 Model 58 Stepping 9, GenuineIntel
byteorder        : little
LC_ALL           : None
LANG             : None
LOCALE           : Russian_Russia.1251

pandas           : 1.0.5
numpy            : 1.18.1
pytz             : 2019.3
dateutil         : 2.8.1
pip              : 20.0.2
setuptools       : 46.0.0.post20200311
Cython           : 0.29.15
pytest           : 5.4.1
hypothesis       : None
sphinx           : None
blosc            : None
feather          : None
xlsxwriter       : None
lxml.etree       : 4.5.0
html5lib         : None
pymysql          : None
psycopg2         : None
jinja2           : 2.11.1
IPython          : 7.13.0
pandas_datareader: 0.8.1
bs4              : 4.9.0
bottleneck       : None
fastparquet      : None
gcsfs            : None
lxml.etree       : 4.5.0
matplotlib       : None
numexpr          : None
odfpy            : None
openpyxl         : 2.6.2
pandas_gbq       : None
pyarrow          : None
pytables         : None
pytest           : 5.4.1
pyxlsb           : None
s3fs             : None
scipy            : None
sqlalchemy       : None
tables           : None
tabulate         : None
xarray           : None
xlrd             : 1.2.0
xlwt             : None
xlsxwriter       : None
numba            : None

</details>
