something like:
@pages = Page.find :all, :conditions => ["site_id = ? OR site_id is NULL",id]
:conditions takes a string for the SQL WHERE condition. The array i use there, handles the espacing of the "id" value to prevent SQL injection, and then replaces "?" with the escaped value of id...