Porque la línea:
Código Delphi
[-]
CheckListBox1.Items.SaveToFile('c:\1TProItems.cln');
Sólo guarda los elementos, no su estado (checked o no).
Quien sí guarda esa información es el DBGrid junto a las columnas con esta línea:
Código Delphi
[-]
DBGridProductos.Columns.SaveToFile('c:\1TProColum.cln');
Entonces como ya tienes esa información en las columnas, sólo tienes que pasarla al componente de CheckListBox.
Añade esto en el FormCreate:
Código Delphi
[-]
...
CheckListBox1.Items.LoadFromFile('C:\1TProItems.cln');
for i:= 0 to DBGridProductos.Columns.Count-1 do begin
CheckListBox1.Checked[i]:= DBGridProductos.Columns[i].Visible;
end;
....