The problem is in constant 'avik' because of data type/size difference. Assuming that sal.name is of type varchar(100), will conflict of 'avik' which is of varchar(4). Problem would resolve if you match the both types like cast('avak' as VARCHAR(100)).'
Try this.
DECLARE @SAL TABLE
(
NAME VARCHAR(100),
ID INT,
SRID INT
)
INSERT INTO @SAL (NAME, ID, SRID)
SELECT 'avik', 1, NULL
UNION ALL
SELECT 'B', 2, 1
UNION ALL
SELECT 'C', 3, 2
;
with t as
(
select name,Id,SrID,cast('avik' as varchar(100)) as [senior] from @SAL where SrID IS NULL
union all
select S.name,S.Id,S.SrID,T.name as [senior] from @SAL S inner join t on S.SrID = t.Id
)
select * from t