2 kleine Anmerkungen:
- 1.qrMain.SQL.Text:='SELECT COUNT (*) as id FROM `users` WHERE `name` =`'+Label12.Caption+'`';
Warum baust du einen "´" für jeden Identifier ein?
Such mal hier in der DP unter Datenbanken nach
parameter and sql or Stringbasteleien.
Da dürftest du genügend Infos über die Verwendung von Parametern finden. 
- 2.qrMain.FieldByName('id').AsString;
du könntest doch genausogut qrMain.Fields[0].AsInteger;
verwenden.
Dann musst du auch nicht unbedingt ein Alias für die Spalte setzen.
Edit: "Firlds" -> "Fields"