A very reliable rule of thumb for British English and General American is this:
If the syllable con is stressed it will take a full strong, vowel, and the first syllable will be: /kɒn/.
If the syllable is not stressed we will find a schwa, /ə/, or no vowel at all in the first syllable: either /kn/ or /kən/.
However, we should bear in mind that some regional varieties of English will have a full vowel in the first syllable of many of these words regardless of stress. So in Yorkshire English, for example, many speakers will say /kɒnˈstɪtʃʊənt/.
This morpheme 'con' occurs a lot in English. That last sound in 'con', /n/, is very unstable both because it is an alveolar sound and also because it is nasal. It tends to change according to the following consonant. We find this prefix with different final consonants in words like: collect, commemorate, correlate. These types of word also show the same variation in their first syllables depending on the stress:
- colleague: /ˈkɒli:g/
- collection: /kəˈlekʃn/
- compensate: /'kɒmpənseɪt/
- computer: /km'pju:tə/
- correlate: /ˈkɒrəleɪt/
- corroborate: /kə'rɒbəreɪt/
Both words collection and corroborate could be said with no schwa at all, and just a syllabic consonant - but the transcription for this is tricky in terms of syllabification, so I have taken the easy route and used a schwa. Similarly, computer could equally be said with a schwa instead of a syllabic /m/.
[Transcription note: in line with the Original Poster's question I have used Southern Standard British English transcriptions].
I agree that your second pronunciation from Oxford Learner's dictionary was hard to distinguish. It sounded like it may have been a more southern US dialect. See the Pin-Pen merger.
Wikipedia has a pretty good explanation and table showing variations in accents of American English due to /æ/ tensing. Depending on the consonant following /æ/, the sound may be raised, lengthened or diphthongized. In my central Canadian prairie accent, it's hard to distinguish a difference between parish and perish.
There are simpler word pairs to distinguish these sounds. Try bat and bet.
Best Answer
The tense–lax distinction
As shown there, the vowel at the end of happy /ˈhæpi/ is what we call the FLEECE vowel. It is a tense vowel, sometimes called the close front unrounded vowel. The vowel in sit /sɪt/ is the corresponding lax vowel, the one that we call the KIT vowel, or sometimes the near-close near-front unrounded vowel.
The difference between your other pair is again that of tense /u/ for the GOOSE vowel versus lax /ʊ/ for the FOOT vowel.
You need to learn to hear the difference between these tense/lax vowel pairs, because hearing the tense–lax distinction is critical to understanding English. Until you can hear it, English will always sound confusing to you.
Here's the chart for all twelve simple vowels (monophthongs) of American English:
Notice how there are contrasting pairs of vowels:
In materials for young children, the tense vowels are often called “long” and the lax ones “short”, but this is not a good way to talk about them because vowel length is not phonemic. Plus if you were talking about length, you would have to mention that all three phonemic diphthongs (/aʊ/, /aɪ/ and /ɔɪ/) take longer to say, too.
All that said, the word happy does not always end with a tense vowel in all speakers. In those with happy tensing, it does, but in others it does not. Happy tensing is the more common variety.