Two things you need to fix:
1) Give @Amount a value - at present it is null, so it won;t work too well.
2) Convert @Amount to a VARCHAR
Declare @Amount Decimal(18,4)
Declare @strSql VARCHAR(MAX)
SET @strSql =''
SET @Amount=0.0
SET @strSql = 'UPDATE TABLE1 SET col1='+CONVERT(VARCHAR, @Amount)+' where id=1'
print @strSql