You can have other elements in the descent from <div id="sidebar"> to <li> (a direct child-parent relationship would be indicated by ul > li). Indeed, the "ul" in your selector isn't strictly necessary either, because it's inevitable that there'd be a <ul> element in the chain of descent from <div> to <li>.
And as it's given, it should indeed work. Perhaps there are other rules being applied that are overriding yours; perhaps the "xoxo" or "blogroll" classes are switching list item decorations back on. A couple of tools I know of that can be used to diagnose this are the "Web Developer" and "Firebug" extensions for Firefox.
If that is the situation, one solution might be to give the <ul> element an id attribute and target that id rather than the ancestor <div>. The problem is that if you have other lists you want to do this to then they'd each need their own id and therefore their own distinct rule, and that's just more complication.