(into {} (keep (fn [e] (if (val e) e)) {:a :x :b nil :c :z}))
;;=> {:a :x, :c :z}
or a little shorter:
(into {} (keep #(if (val %) %) {:a :x :b nil :c :z}))
In fact, your filter suggestion is much better and shorter, so I would just use that:
(into {} (filter val {:a :x :b nil :c :z}))