Inline tvf's would get around the cardinality issues Gail mentions. Something like this:
DECLARE @strID int
SELECT ID
FROM Table1
WHERE ID = @strID AND REP = 1
UNION ALL
SELECT ID
FROM Table2 WITH(NOLOCK)
CROSS APPLY (SELECT REP FROM Table1 WHERE ID = @strID) x
WHERE (x.REP <> 1 AND ParentID = @strID)
OR (x.REP = 1 AND ParentID IN (SELECT * FROM dbo.fn_getOrgIDList(@strID)) )
...where dbo.fn_getOrgIDList would have to be similarly tweaked.
For fast, accurate and documented assistance in answering your questions, please read this article.
Understanding and using APPLY, (I) and (II) Paul White
Hidden RBAR: Triangular Joins / The "Numbers" or "Tally" Table: What it is and how it replaces a loop Jeff Moden