Yes, Ennis was a virgin.
There are 3 scenes that clarify it. 2 with Jack and 1 with Alma.
I agree that he was definitely a virgin. Alma was a church-going girl, and obviously wouldn't be having sex before marriage. Ennis also would think of it as a sin, ...as he told Jack "You may be a sinner, but I haven't had the opportunity", Jack of course was talking about being gay, but Ennis misunderstood and thought he was talking about having sex with a woman outside of marriage. Before he met Jack, he had been engaged to Alma for several months, because it was the next step his life. His sister and brother had gotten married, so there was nowhere for him to go, he had to find someone and do the same. It's clear that Alma was the first girl he dated. I think he met Alma at some sort of church or community event. The most he did with her before he married her was probably kiss and hold hands. About Jack and whether he was a virgin or not, it's unknown. Some people think that the year before, Jack had slept with whoever the other young man he was working with up on the mountain was (since we know that Jack had worked for Aguirre before, and so must have had another co-worker). But I highly doubt that he slept with the guy. What are the odds of him meeting two closeted gay men in the same place and same job two years in a row?
I think Jack was also careful, he wasn't naive. He was definitely an idealist, and wished the world was very different, but he understood how this world is, and he wouldn't go around flirting and making advances towards any man he was attracted to, unless he sensed that the man might was also gay. Jack used his intuition with Ennis when they first met, and then later the subtle clues that Ennis gave him, Jack definitely had a sense and about that kind of thing like a lot of gay men do. I don't like to use the term "gaydar" because I think it's a silly word, but I can't think of of another word besides intuition to know how Jack seemed to just know and sense another man's orientation. Although he hadn't been shown the gruesome scene that Ennis had, Jack still understood that society was very homophobic and that if he flirted with the wrong guy he might get beaten up or even worse. That's why I think Jimbo may have been another closet case, since Jack felt safe enough to approach him and flirt with him, and Jimbo didn't react violently to the advance, he just walked away and laughed at Jack, went directly to his buddies because he seemed afraid what they would think about him. That said, perhaps Jack had slept with another man before Ennis, but it was just highly unlikely that it was the prior year's co-worker. Jack had been in rodeos and therefore traveled around the region a bit, he might have met another man that way. He might have even slept with a woman before. Jack just seemed more experienced, although that could just be due to the fact that he had a more outgoing personality.