OPENQUERY does not accept variables for its arguments. If you need to build the query dynamically you can use dynamic SQL.
DECLARE @string VARCHAR(MAX),
@SQL NVARCHAR(MAX);
SET @string = 'abcd';
SET @SQL = 'SELECT * FROM OPENQUERY(TEST_Server, ''SELECT * FROM Table1 WHERE Field1 = ''''' + @string + ''''''')';
EXEC sp_executesql @SQL;