Column ID is not really a special field in ALV. It is always filled automatically by ALV and your manual entries are overwritten and set to the same value as COL_POS (Column position).

I’ve prepared a demo program (ZDEMO_AIN_CL46) to show you, how the COL_ID is changing on a base of COL_POS. On the selection screen you can find two radio-buttons.
 

Figure 120 ZDEMO_AIN_CL46 Selection screen

 

When you select the first option - “COL_ID filled”,  the FCAT will be created with manual COL_ID.
 

Figure 121 ZDEMO_AIN_CL46 FCAT with manual COL_ID

 

As you will notice on the screen, or while debugging the code, after the method SET_TABLE_FOR_THE_FIRST_DISPLAY is called, the FCAT is changed and so are the COL_ID entries. Now it is equal to COL_POS, which was in this case also set manually on a base of columns order in the FCAT table.

 

Figure 122 ZDEMO_AIN_CL46 FCAT of the first selection option after displaying ALV

 

Using the option “COL_ID & COL_POS filled” on the selection screen, the following FCAT will be build. You ca notice that the COL_ID is different than COL_POS. Additionally after the creation of FCAT, I’ve sorted it by FIELDNAME, just to show you, that in this case the sequence of the field doesn’t matter.

Figure 123 ZDEMO_AIN_CL46 FCAT with COL_ID and COL_POS filled

As you will notice on the screen, now field position is set according COL_POS column. Additionally COL_ID is set exactly to the same value.

 

Figure 124 ZDEMO_AIN_CL46 FCAT after displaying ALV

 

While there is no effect of this field, simply forget about it.