Я не знаю, где вы установите столбец на Visible = false
Но его правильное место в Databound Event of Gridview
protected void GridView1_DataBound(object sender, EventArgs e)
{
if (GridView1.Columns.Count > 0)
{
GridView1.Columns[0].Visible = false;
}
}