Although creating and then closing a temporary window is even simpler ...
Code:
set lstProjects to ProjectList("all-projects")
on ProjectList(strFilter)
tell application id "com.omnigroup.OmniFocus"
tell front document
tell (make new document window)
set selected view mode identifier to "project"
set focus to {}
tell sidebar
select library
set selected smart group identifier to strFilter
end tell
set lstProject to {}
repeat with oTree in trees of content
set end of lstProject to value of oTree
end repeat
close
end tell
end tell
end tell
lstProject
end ProjectList