A partir do procedimento que você incluiu, parece que seu delimitador está definido como
$$
. Se sim, tente o seguinte:
CREATE FUNCTION inrange(
lat1 decimal(11, 7),
lon1 decimal(11, 7))
RETURNS INT(1)
READS SQL DATA
BEGIN
DECLARE distance decimal(18, 10);
SET distance = ACOS(SIN(lat1)*SIN(targ2)+COS(lat1)*COS(targ2)*COS(targ3-lon1))*6371;
IF distance <= targ4 THEN
RETURN 1;
END IF;
RETURN 0;
END$$