if the Description column value starts with STATES then remove it in output if STATES_ appears then need to remove from output.
IMHO, the REPLACE() function is not suitable for the scenario. It will replace a string found anywhere not necessarily at the beginning of the string.
Please try the following approach.
SQL
-- DDL and sample data population, start
DECLARE @tbl Table (Id varchar(10), Description varchar(30))
INSERT INTO @tbl Values
('X01','STATES CHAMBER'),
('X01','LANCASTER Fords'),
('X01','MEMBER SYNERGY'),
('X01','STATES_LOC'),
('X01','STATES MOCHAL'),
('X01','STATE GOVT');
-- DDL and sample data population, end
DECLARE @remove VARCHAR(20) = 'STATES_';
SELECT id, Description AS [Before]
, IIF(LEFT(Description, LEN(@remove)) = @remove, STUFF(Description, 1, LEN(@remove), ''), Description) AS [After]
FROM @tbl;