Since Real Madrid has won the La Liga title this season already and they have qualified for the UEFA Champions League finals, Ancelotti will not want to risk his best players getting injured. Ancelotti has been using Real Madrid players, who don't have playing time, to play some of their remaining matches, and they are pretty well performing. Villarreal only equalizes against Real Madrid because not all of their starting eleven played that match against Villarreal. Ancelotti wants his starting eleven to have a good rest so that they can perform well against Borussia Dortmund in the UEFA Champions League final.
Of course it is true as you said, Carlo Anceloti will not want to take a big risk in fielding his best players just because he is pursuing the ambition of winning because in fact Real Madrid has been declared victorious in La Liga and has already won the trophy so why is Real Madrid trying to win every game when they have was declared the winner and Carlo Anceloti also wouldn't have done that and taken a bigger risk because Real Madrid still had another important match competing in the Champions League final. If Anceloti fielded his best players in the La Liga match he would be afraid of injury because we don't know it's bad luck when it will happen so it's better to prevent it from happening.
Moreover, using Real Madrid's second player also continued to perform well in La Liga, it was proven that these players' attacks looked aggressive and created many opportunities at home to Villareal. Although in the end the Villareal players also counter-attacked which resulted in only achieving a draw, but even so, Real Madrid also quite satisfied with the draw, rather than having to suffer a defeat, at least one point can add to his points collection this season.