問題は、列名を一重引用符で囲んで、10進値を文字列リテラルと比較することを強制していることです。列名とテーブル名は文字列リテラルではなく識別子であるため、一重引用符で囲むことはできません。
AND `lat` > '-1.300000'
AND `lon` BETWEEN '55.555555' AND '53.000000' -- use between here
問題は、列名を一重引用符で囲んで、10進値を文字列リテラルと比較することを強制していることです。列名とテーブル名は文字列リテラルではなく識別子であるため、一重引用符で囲むことはできません。
AND `lat` > '-1.300000'
AND `lon` BETWEEN '55.555555' AND '53.000000' -- use between here