Make a copy of the grouping column and group by that column. The duplicate column disappears in the group by. Perhaps not pretty, but effective.
df['col1_for_groupby'] = df['col1']
df = df.groupby(["col1_for_groupby"], as_index=False).fillna(method="ffill")