Views - Change view based on number of results
The only way I can think to do this will require some views, and a little code:


Build view that gets the list of nodes as Node IDs (nids) for a given taxonomy term.
Then build a view that gets your nodes and has filters as needed. It should take multiple, comma separated nids as an argument.

a: Add a display (block, pane, whatever type you need) that shows nodes in full, but limit it to one row.
b: Add another display that handles the list version.



With these building blocks you can call the appropriate Views display using some code. You can write this and either put it in in your own module, custom theme or simply add PHP snippet into a node or custom Panel pane.

The pseudocode looks like this:


call the first view and get the result with $result = views_get_view_result()
count() how many rows are returned in $results, set $single_result = TRUE accordingly.
take the $results array and turn it in to a comma-separated string of nids with implode(',', $result) 
If there's a $single_result then embed the view display for a single full node in the page and pass it $results as an argument, like so: views_embed_view('your_view_name, 'your_full_view_display_name', $results)
If there's not a $single_result then embed the view display for multiple entries, with $results passed to it.


The above has most of the core functions you'll need... I'll leave it to you to turn this into proper code!