Your way of declaring parameter @result is wrong.
Correct way to declare a local variable is:
DECLARE @result int
Infact you don't need it based on your scenario. Try something like:
CREATE PROCEDURE [dbo].[Useradd]
@username varchar(20),
@pword nvarchar(20),
@empname varchar(20),
@email nvarchar(50),
@designation varchar(20),
@reportto varchar(20)
AS
IF (SELECT COUNT(*) FROM Users WHERE username= @username) < 1
BEGIN
INSERT INTO Users(username,pword,empname,email,designation,reportto)
VALUES(@username,@pword,@empname,@email,@designation,@reportto)
END
UPDATE: Changed the count condition from >0 to <1