логические операторы and or not имеют более высокий приоритет чем операторы сравнения.
правильно:
Код:
if not (label1.Caption='') or (label1.Caption<>'label1') then
Если сомневаетесь насчёт приоритета - применяйте скобки, а ещё лучше - внимательно читайте справку. В разных языках и даже в разных компиляторах одного языка программирования приоритеты могут отличаться.
зы: и не забывайте что = и := не одно и тоже.