¿Por qué mi unión izquierda no devuelve nulos?

En sql server 2008, tengo la siguiente consulta:

select      
    c.title as categorytitle,
    s.title as subcategorytitle,
    i.title as itemtitle
from categories c
join subcategories s on c.categoryid = s.categoryid
left join itemcategories ic on s.subcategoryid = ic.subcategoryid 
left join items i on ic.itemid = i.itemid and i.siteid = 132
where (ic.isactive = 1 or ic.isactive is null)
order by c.title, s.title

Estoy tratando de obtener elementos en sus subcategorías, pero todavía quiero devolver un registro si no hay elementos en la categoría o subcategoría. Las subcategorías que no tienen artículos nunca se devuelven. ¿Qué estoy haciendo mal?

Gracias

EDITAR

Consulta modificada con una segunda unión izquierda y cláusula where, pero todavía no devuelve nulos. : /

EDITAR 2

Se movió siteid al elemento dejado unirse. Cuando hago esto, obtengo muchos más registros de lo esperado. Algunos elementos tienen un siteid nulo y solo quiero incluirlos cuando tienen una identificación específica.

EDITAR 3

Estructura de la mesa:

Categories Table 
-------
CategoryID
Title

SubCategories Table
-------
SubCategoryID
CategoryID
Title

ItemCategories Table
-------
ItemCategoryID
ItemID
SubCategoryID
IsActive

Items Table 
--------
ItemID
Title
SiteID

Respuestas a la pregunta(6)

Su respuesta a la pregunta