I think you might be interested in this recent blog post from Bogumil - your case is explained in the section “Multiple target columns”.
Here the elements of list_data are iterable (as they are vectors), so in combination with multiple return columns they are split up. Your transformation col -> [el for el in col] does indeed not do anything:
julia> df.list_data == [el for el in df.list_data]
true