The sample size is so small that creating a 95% (or 99%, for what matters) confidence interval is practically almost irrelevant, so you could easily disregard what follows, if you want really to inform people (who would apply your findings if stemming only from 10 cases?).
However, the simplest and possibly most robust approach I would recommend would be to use percentile bootstrap, maybe with 10,000 bootstrap samples, using for inference the median, 2.5th percentile, and 97.5th percentile.
In my experience and in keeping with established sources, bootstrap is almost always the best choice when simple and reliable parametric approaches are lacking. I really recommend for instance the seminal book by Efron and Tibshirani, despite being somewhat old.
A possible way in R to get inferential estimates for both mean and median could be the following:
data <- c(0, 0, 0, 1, 0, 1, 0, -1, -1, 1)
resamples <- lapply(1:10000, function(i)
sample(data, replace = T))
r.mean <- sapply(resamples, mean)
head(r.mean)
quantile(r.mean, c(.005, .025, .5, .975, .995)) # results for the mean
r.median <- sapply(resamples, median)
head(r.median)
quantile(r.median, c(.005, .025, .5, .975, .995)) # results for the median