Thats because your parameter varchar.. You have to set the size of varchar.Else it will take only one character..
Try this.
create proc [dbo].[DataDetailsFilter_proc]
@filter varchar(100) output
as
set nocount on
SELECT *
FROM DataDetails
WHERE FirstName = @filter