Estoy algo oxidado en ADO, pero creo que es debido a que usas la propiedad Active, en lugar de solamente llamar al método ExecSQL.
Le estás diciendo al conjunto de datos que "se abra", como para leer registros con una sentencia SQL "Select", cuando lo que deseas es simplemente ejecutar una sentencia que no devuelve registros.
Creo que bastará con que elimines / comentes la línea del "Active := True".
Por otra parte, me parece que también podrías usar el objeto conexión:
Código Delphi
[-]ADOConnection1.Execute ('Alter Table Tabla1 Add Gender02 Char (1)');
Saludos.
P.D. "Active := True" es lo mismo que un "Open".