I recently came across this exact same question asked here: Construction of a Borel set with positive but not full measure in each interval :
If $\mu$ denotes Lebesgue measure, how would one construct a Borel set $A \subset \mathbb{R}$ such that $$0 < \mu(A \cap I) < \mu(I)$$ for every interval $I$ in $\mathbb{R}$?
The answer with the highest vote seems to suggest the set $A$ constructed there is sufficient. I will copy-paste the answer for convinience:
Let $\{r_n\}$ be an enumeration of the rationals, let $V_1$ be a segment of finite length centered at $r_1$, and let $V_n$ be a segment of length $m(V_{n-1})/3$ centered at $r_n$. Set $$ W_n=V_n-\bigcup_{k=1}^{\infty}V_{n+k}, $$ and observe that \begin{equation} m(W_n)\geq m(V_n)-\sum_{k=1}^{\infty}m(V_{n+k})=m(V_n)-m(V_n)\sum_{k=1}^{\infty}3^{-k}=\frac{m(V_n)}{2}. \end{equation} In particular, $m(W_n)>0$. For each $n$, choose a Borel set $A_n\subset W_n$ with $0<m(A_n)<m(W_n)$. Finally, put $A=\bigcup_{n=1}^{\infty}A_n$. Because $A_n\subset W_n$ and the $W_n$ are disjoint, $m(A\cap W_n)=m(A_n)$. That is to say, $$ 0<m(A\cap W_n)<m(W_n) $$ for every $n$. But every interval contains a $W_n$, so $A$ meets the criteria, and has finite measure (specifically, $m(A)\leq\sum_n m(V_n)=2 m(V_1)<\infty$). In particular, we must have for all interval $I$, $$ 0 < m(A \cap I) < m(I). $$
Now I can show why $0 < m(A \cap I)$ is true: Since every interval $I$ must contain some constructed rational centered interval $V_n$, we have as $A_n \subseteq W_n \subseteq V_n$ for all $n \in \mathbf{N}$, $$ m(I \cap A) \geq m(V_n \cap A) = \sum_{i = 1} ^\infty m(V_n \cap A_i) \geq m(V_n \cap A_n) = m(A_n) > 0. $$ But I can not seem to prove $$ m(I \cap A) < m(I). $$ Any suggestions as to how to proceed?