Count of number of records is independent of columns in SELECT list unless some condition is provided in WHERE clause.
Just do this
DECLARE @SQL AS VARCHAR(MAX)
Set @SQL ='Select COUNT(*) From Table1'
Exec(@SQL)
So if you want to store rowcount value returned use a table variable and insert into it
DECLARE @SQL AS VARCHAR(MAX)
DECLARE @rowCountTable TABLE(row_count INT)
Set @SQL ='Select COUNT(*) From Table1'
INSERT INTO @rowCountTable
Exec(@SQL)
SELECT * FROM @rowCountTable
You can also retrieve value using OUTPUT variable
DECLARE @retCount int
DECLARE @SQL AS NVARCHAR(MAX)
DECLARE @outPut NVARCHAR(50);
SET @SQL = N'Select @retvalOUT=COUNT(*) From Table1'
SET @outPut = N'@retvalOUT int OUTPUT';
EXEC sp_executesql @SQL, @outPut, @retvalOUT=@retCount OUTPUT;
SELECT @retCount;