I was taught that all Italian words ending in -si are femminile. But dictionaries show that 'brindisi' is maschile. Is it exception or the rule about '-si words' is wrong?
While I agree with egreg that one should get a sense of words' gender by using them rather than with “rules and exceptions” (as an Italian I never heard explicitly that rule), by doing an advanced search on Zingarelli 2018 Italian dictionary for masculine nouns in “-si”, I find that there are only:
- cremisi (crimson colour);
- passi (a pass);
- the musical note si;
- some local, rare words such as sussi and biribissi;
- some words of foreign origin such as farsi (the Persian language), lassi (an Indian drink made of yogurt), parsi and tutsi (each, a person of the respective ethnic group);
- several compound words such as contapassi, schiacciasassi, saltafossi and so on, where the -si ending comes actually from a masculine plural (passi, sassi etc.);
- some reflexive verbs in the infinitive form, used as nouns (as remarked in a comment), such as manifestarsi and volgersi.
All in all, less than 60 items are returned, including “false positives” (such as the plural name Rapidoglossi – a group of molluscs – or nouns with an accent, such as sì and tassì). For reference, a search for feminine nouns in “-si” returns (false positives and all) 1081 terms, from abiogenesi to zooprofilassi.
So, in a large majority of cases, I'd say that the rule you have been taught can be considered correct.